package com.ruikc.study.demo.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.math.BigDecimal;

import java.io.Serial;


/**
 *  实体类。
 *
 * @author zhiyuan
 * @since 2025-02-22
 */
@Table("sales_details")
public class SalesDetails implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 销售单明细的唯一标识符，自增主键
     */
    @Id(keyType = KeyType.Auto)
    private Integer detailId;

    /**
     * 关联的销售单 ID，外键关联 sales 表的 sale_id
     */
    private Integer saleId;

    /**
     * 供应商 ID，外键关联 supplier 表的 supplier_id
     */
    private Integer supplierId;

    /**
     * 供应商名称
     */
    private String supplierTitle;

    /**
     * 客户 ID，外键关联 vendor 表的 vendor_id
     */
    private Integer vendorId;

    /**
     * 客户名称
     */
    private String vendorTitle;

    /**
     * 商品 ID，外键关联 product 表的 product_id
     */
    private Integer productId;

    /**
     * 商品名称
     */
    private String productTitle;

    /**
     * 商品批次号
     */
    private String batchNumber;

    /**
     * 商品生产日期
     */
    private String productionDate;

    /**
     * 商品有效期至
     */
    private String expirationDate;

    /**
     * 商品规格名称
     */
    private String specName;

    /**
     * 商品型号名称
     */
    private String modelName;

    /**
     * 商品基本单位
     */
    private String basicUnit;

    /**
     * 销售商品数量
     */
    private Integer salesQuantity;

    /**
     * 商品销售单价
     */
    private BigDecimal salesPrice;

    /**
     * 商品销售金额
     */
    private BigDecimal salesAmount;

    /**
     * 商品含税单价
     */
    private BigDecimal taxInclusivePrice;

    /**
     * 商品含税销售金额
     */
    private BigDecimal taxInclusiveAmount;

    private String createdAt;

    private String updatedAt;

    private String deletedAt;

    /**
     * 销售单编号
     */
    private String serialNumber;

    /**
     * 销售日期
     */
    private String saleDate;

    public Integer getDetailId() {
        return detailId;
    }

    public void setDetailId(Integer detailId) {
        this.detailId = detailId;
    }

    public Integer getSaleId() {
        return saleId;
    }

    public void setSaleId(Integer saleId) {
        this.saleId = saleId;
    }

    public Integer getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Integer supplierId) {
        this.supplierId = supplierId;
    }

    public String getSupplierTitle() {
        return supplierTitle;
    }

    public void setSupplierTitle(String supplierTitle) {
        this.supplierTitle = supplierTitle;
    }

    public Integer getVendorId() {
        return vendorId;
    }

    public void setVendorId(Integer vendorId) {
        this.vendorId = vendorId;
    }

    public String getVendorTitle() {
        return vendorTitle;
    }

    public void setVendorTitle(String vendorTitle) {
        this.vendorTitle = vendorTitle;
    }

    public Integer getProductId() {
        return productId;
    }

    public void setProductId(Integer productId) {
        this.productId = productId;
    }

    public String getProductTitle() {
        return productTitle;
    }

    public void setProductTitle(String productTitle) {
        this.productTitle = productTitle;
    }

    public String getBatchNumber() {
        return batchNumber;
    }

    public void setBatchNumber(String batchNumber) {
        this.batchNumber = batchNumber;
    }

    public String getProductionDate() {
        return productionDate;
    }

    public void setProductionDate(String productionDate) {
        this.productionDate = productionDate;
    }

    public String getExpirationDate() {
        return expirationDate;
    }

    public void setExpirationDate(String expirationDate) {
        this.expirationDate = expirationDate;
    }

    public String getSpecName() {
        return specName;
    }

    public void setSpecName(String specName) {
        this.specName = specName;
    }

    public String getModelName() {
        return modelName;
    }

    public void setModelName(String modelName) {
        this.modelName = modelName;
    }

    public String getBasicUnit() {
        return basicUnit;
    }

    public void setBasicUnit(String basicUnit) {
        this.basicUnit = basicUnit;
    }

    public Integer getSalesQuantity() {
        return salesQuantity;
    }

    public void setSalesQuantity(Integer salesQuantity) {
        this.salesQuantity = salesQuantity;
    }

    public BigDecimal getSalesPrice() {
        return salesPrice;
    }

    public void setSalesPrice(BigDecimal salesPrice) {
        this.salesPrice = salesPrice;
    }

    public BigDecimal getSalesAmount() {
        return salesAmount;
    }

    public void setSalesAmount(BigDecimal salesAmount) {
        this.salesAmount = salesAmount;
    }

    public BigDecimal getTaxInclusivePrice() {
        return taxInclusivePrice;
    }

    public void setTaxInclusivePrice(BigDecimal taxInclusivePrice) {
        this.taxInclusivePrice = taxInclusivePrice;
    }

    public BigDecimal getTaxInclusiveAmount() {
        return taxInclusiveAmount;
    }

    public void setTaxInclusiveAmount(BigDecimal taxInclusiveAmount) {
        this.taxInclusiveAmount = taxInclusiveAmount;
    }

    public String getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(String createdAt) {
        this.createdAt = createdAt;
    }

    public String getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(String updatedAt) {
        this.updatedAt = updatedAt;
    }

    public String getDeletedAt() {
        return deletedAt;
    }

    public void setDeletedAt(String deletedAt) {
        this.deletedAt = deletedAt;
    }

    public String getSerialNumber() {
        return serialNumber;
    }

    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }

    public String getSaleDate() {
        return saleDate;
    }

    public void setSaleDate(String saleDate) {
        this.saleDate = saleDate;
    }

}
